package com.chenfan.mcn.model.dto;

import com.chenfan.common.extension.validation.groups.Modify;
import lombok.Data;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * @Author liuyang
 * @Date 2021/3/3
 * @Time 14:26
 * @Version V1.0
 **/
@Data
public class AnnualRebateApprovalAddDTO implements Serializable {

    /**
     * 主键ID
     */
    @NotNull(message = "主键ID不能为空", groups = {Modify.class})
    private Long id;

    /**
     * 返点类型（1-单笔返点，2-年度返点）
     */
    @NotNull(message = "【返点类型】必选")
    private Integer annualType;

    /**
     * 单据状态:待提交_0, 审批中_1, 审批拒绝_2, 已撤回_3, 待打款_4, 已打款_5, 作废_9
     */
    @NotNull(message = "请正确标记单据状态")
    private Integer approvalStatus;

    /**
     * 客户id
     */
    @NotNull(message = "【客户】必选")
    private Long customerId;

    /**
     * 我司合同主体id
     */
    @NotNull(message = "【我司主体】必选")
    private Long contractingId;

    /**
     * 折扣审批单编号
     */
    private String discountCode;

    /**
     * 返点金额（参考）
     */
    @NotNull(message = "【返点金额（参考）】必填")
    private BigDecimal rebateAmount;

    /**
     * 确认返点金额
     */
    @NotNull(message = "【确认返点金额】必填")
    private BigDecimal confirmRebateAmount;

    /**
     * 累计收入合同金额
     */
    private BigDecimal accumulatedIncomeAmount;

    /**
     * 备注
     */
    private String remark;

    /**
     * 公司名称/户名
     */
    @NotNull(message = "【公司名称/户名】必选")
    private Long payeeAccountId;


    /**
     * 上传合同
     */
    private String contractFile;

    /**
     * 关联的执行单ID-数组
     */
    @NotEmpty(message = "请选择关联的执行单")
    private List<Long> excuteIds;
}
